laytonfandomcom_de-20200213-history
Modul:Rätsel Infobox
local p = {} local infobox local SpielTest = " " local Spiel local Name local categories = {} -- Categories to add local pData local Anzahl = { "1" = "135", "2" = "153", "3" = "168", "4" = "170", "5" = "150", "6" = "165", "VS" = "82", --"MJ" = "0" } local Spiele = { "1" = "Professor Layton und das Geheimnisvolle Dorf", "2" = "Professor Layton und die Schatulle der Pandora", "3" = "Professor Layton und die verlorene Zukunft", "4" = "Professor Layton und der Ruf des Phantoms", "5" = "Professor Layton und die Maske der Wunder", "6" = "Professor Layton und das Vermächtnis von Aslant", "VS" = "Professor Layton vs. Phoenix Wright: Ace Attorney", --"MJ" = "Layton’s Mystery Journey: Katrielle und die Verschwörung der Millionäre" } local Spiel_Handlung = { "1" = "Layton 1", "2" = "Layton 2", "3" = "Layton 3", "4" = "Layton 4", "5" = "Layton 5", "6" = "Layton 6", "VS" = "Layton vs. Wright", --"MJ" = "Layton’s Mystery Journey" } local pageName,_ = mw.ustring.gsub( mw.title.getCurrentTitle().text, '%(Vermächtnis von Aslant%)', ' ' ) pageName,_ = mw.ustring.gsub(pageName, '%(Schatulle der Pandora%)', ' ') pageName,_ = mw.ustring.gsub(pageName, '%(Verlorene Zukunft%)', ' ') pageName,_ = mw.ustring.gsub(pageName, '%(Ruf des Phantoms%)', ' ') pageName,_ = mw.ustring.gsub(pageName, '%(Rätsel%)', ' ') local function getPuzzle(spiel, nummer) if nummer "???" then -- Hidden Door local hd = {"2" = 154, "3" = 169} nummer = hdspiel end pData = mw.loadData("Modul:RätselDaten/" .. spiel) return pDatatonumber(nummer) end local function isEmpty(arg) return not arg or arg '' end local function addCategory(category) categories#categories+1 = "Kategorie:" .. category .. "" end local function createInfobox(Spiel) infobox = mw.html.create("table"):addClass("infobox") end local function addTitleRow(Name) Name = pageName infobox :tag("tr") :tag("th") :attr("colspan", 2) :addClass("infoboxheader") :wikitext(Name) end local function addImageRow(Bild) infobox :tag("tr") :tag("th") :attr("colspan", 2) :addClass("infoboxbild") :wikitext("link=") end local function addNoImageRow(text) infobox :tag("tr") :tag("th") :attr("colspan", 2) :addClass("infoboxbild") :wikitext(text) end local function addHeaderRow(text) infobox :tag("tr") :tag("th") :attr("colspan", 2) :wikitext(text) end local function addRow(label, content, altText) if isEmpty(content) then if altText then content = altText else return end end local row = infobox:tag("tr") row:tag("td") :addClass("farbe1") :wikitext(label) row:tag("td") :addClass("farbe2") :wikitext(content) return row end function p.main(frame) local a = frame:getParent().args -- Vorlagen Parameter (wie } etc.) local puzzle = getPuzzle(a.Spiel, a.Nummer) -- Daten aus den RätselDaten Modulen local puzzleNav = mw.html.create('table'):addClass('navbox puzzleNav') local navRow = puzzleNav:tag('tr') local aNum = tonumber(a.Nummer) local pPrev, pNext if aNum then pPrev = pDataaNum-1 pNext = pDataaNum+1 if not pPrev or tonumber(pPrev.nummer) ~= aNum-1 then pPrev = nil end if not pNext or tonumber(pNext.nummer) ~= aNum+1 then pNext = nil end end if pPrev then navRow :tag('td') :css('width','33.3%') :css('text-align', 'center') :wikitext("← " .. (pPrev.name or '?') .. "") else navRow :tag('td') :css('width','33.3%') :css('text-align', 'center') :wikitext('-') end navRow :tag('td') :css('text-align', 'center') :wikitext(pageName) if pNext then navRow :tag('td') :css('width','33.3%') :css('text-align', 'center') :wikitext("" .. (pNext.name or '?') .. " →") else navRow :tag('td') :css('width','33.3%') :css('text-align', 'center') :wikitext('-') end createInfobox(a.Spiel) Name = a.Name Spiel = a.Spiel -- ## TITEL ## addTitleRow(Name) -- ## BILD ## if not isEmpty(a.KeinBild) then addNoImageRow("Dieses Rätsel hat kein Titelbild") else local Bild = a.Bild or ("PL" .. Spiel .. "-" .. a.Nummer .. ".png") addImageRow(Bild) end -- ## SPRACHEN ## addHeaderRow("In anderen Sprachen") -- JP if not isEmpty(a.Romaji) then local Romaji = a.Romaji a.Jp = a.Jp .. " " .. Romaji .. "" addRow("link= Japanisch ", a.Jp) else addRow("link= Japanisch", a.Jp) end -- EN (US/UK) if not isEmpty(a.En) then -- Englisch addRow("link= Englisch", a.En) else -- Amerikanisch & Britisch addRow("link= Amerikanisch", a.Us) addRow("link= Britisch", a.Uk) end -- FR addRow("link= Französisch", a.Fr, "Unbekannt") if isEmpty(a.Fr) then addCategory("Französischer Titel fehlt") end -- IT addRow("link= Italienisch", a.It, "Unbekannt") if isEmpty(a.It) then addCategory("Italienischer Titel fehlt") end -- KR if not isEmpty(a"Kr-Umschrift") then local Umschrift = a"Kr-Umschrift" a.Kr = a.Kr .. " " .. Umschrift .. "" addRow("link= Koreanisch ", a.Kr) else addRow("link= Koreanisch", a.Kr) end -- NL if isEmpty(a.Nl) and Spiel ~= "1" then addRow("link= Niederländisch", a.Nl, "Unbekannt") addCategory ("Niederländischer Titel fehlt") else addRow("link= Niederländisch", a.Nl) end -- SP addRow("link= Spanisch", a.Sp, "Unbekannt") if isEmpty(a.Sp) then addCategory("Spanischer Titel fehlt") end -- ## INFORMATIONEN ## addHeaderRow("Informationen") -- Nummer addRow("Rätsel-Nummer", a.Nummer .. "/" .. (Anzahla.Spiel)) -- Spiel addRow("Spiel", "[.. (Spiele[a.Spiel or "") .. "]]") -- Pikarat if puzzle.pikarat then addRow("Pikarat", puzzle.pikarat) addCategory(( puzzle.pikarat or 0 ) .. " Pikarat") end -- Rätsel-Typ if puzzle.typ then if puzzle.typ2 then addRow("Typ", "[.. puzzle['typ' .. '|' .. puzzle'typ' .. "]]/[.. puzzle['typ2' .. '|' .. puzzle'typ2' .. "]]") addCategory("Typ:" .. puzzle.typ) addCategory("Typ:" .. puzzle.typ2) else addRow("Typ", "[.. puzzle['typ' .. '|' .. puzzle'typ' .. "]]") addCategory("Typ:" .. puzzle.typ) end end -- Ort if puzzle.ort then addRow("Ort", "" .. puzzle.ort .. "") addCategory("Ort:" .. puzzle.ort) end -- Kapitel if puzzle.kapitel then addRow("Kapitel", puzzle.kapitel) end -- Gestellt von... if puzzle.person then addRow("Gestellt von", "" .. puzzle.person .. "") addCategory("Gestellte Rätsel von " .. puzzle.person) end -- Gelöst von... if puzzle.loeser then addRow("Gelöst von", "" .. puzzle.loeser .. "") addCategory("Gelöste Rätsel von " .. puzzle.loeser) end -- Wichtig für die Handlung if puzzle.handlung then addRow("Handlung", "Dieses Rätsel ist wichtig für das Voranschreiten des Spiels") addCategory("Wichtige Rätsel für das Voranschreiten von " .. (Spiel_Handlunga.Spiel)) end -- Belohnung if puzzle.belohnung then addRow("Belohnung", puzzle.belohnung):addClass("letztezeile") else if isEmpty(a.Belohnung) then addRow("Belohnung", "Für dieses Rätsel gibt es keine Belohnung"):addClass("letztezeile") else addRow("Belohnung", a.Belohnung):addClass("letztezeile") end end return tostring(puzzleNav) .. tostring(infobox) .. table.concat(categories) end return p --